<?

//Initiate Authenticate
SecurityRedirect ();

//initiate Vars 
define("PRIMARY_KEY","nobkt");
$PRIMARY_KEY    = PRIMARY_KEY;
$PRIMARY_VALUE  = GetParam($PRIMARY_KEY,"");
$FileName       = "ais_transaction_receipt_report.php";
$FileTemplate   = "ais_transaction_recreport_formbb.html";
$SubHeaderTitle = "Transaction Receipt - Report Receipt - Bank Payment";
$TableName		= "ais_memorial";
$HTMLFormName   = "AdvanceSummaryForm";
$MaxGrid        = "30";
//$HTMLFormName2  = "BudgetForm";

$FormAction    = $FileName . "?" . AddParam(GetQueryString("QueryString", ""),"form","$HTMLFormName");
$FormEncType   = "application/x-www-form-urlencoded";
//$PMode         = "";

//Initiate Grid Fields;
$FormFields    = array("uraian"=>"0","urut"=>"","skada"=>"","jumlah"=>"number","dk"=>"0","noorder"=>"","noref"=>"","princ"=>"","vessel"=>"","voyage"=>"","memorial_id"=>"");

// Retrieve data From Ref Record
$REF = GetParam("noref","");
$SQL = "SELECT debtur, debnam FROM $TableName WHERE nobkt='".GetParam("noref","")."' AND ktrasl='".GetOfficeID()."'";
$Result = $DBConnection->dbc->get_row($SQL);
$DEBTUR = $Result->debtur;
$DEBNAM = $Result->debnam;

//buildsqlfield ("$TableName", $FormFields);

//Leave Here Untouch
$FormCName     = BuildHTMLField($FormFields,"name",1);
$FormCValue    = BuildHTMLField($FormFields,"value",1);

//************ FORM ACTION **************
if (trim(GetParam("form",""))==trim($HTMLFormName)) {
	if (GetParam("FormAction","")=="Save") {
		list($FDay,$FMonth,$FYear) = explode("/",GetParam("tglbkt",""));
		$tglbkt = "$FYear-$FMonth-$FDay";
		$rate    = StrToNumber (GetParam("rate",""));
	
		if (trim(GetParam("nobkt",""))=="AUTO NUMBERED BY SYSTEM")	{
			$ObjNumber  = new autonumber(GetParam("tglbkt",""),GetParam("kdbank",""));
			$TransNo = $ObjNumber->GetNumber("ZBB");
			
			FormSave("ais_memorial_z", "jumlah", $FormFields, array("ledger"=>GetPeriod(GetParam("tglbkt","")),"curr"=>GetParam("curr",""),"debtur"=>GetParam("debtur",""),"debnam"=>GetParam("debnam",""),"rate"=>$rate,"tglbkt"=>$tglbkt,"nobkt"=>$TransNo,"ktrasl"=>GetOfficeID(),"kdact"=>GetParam("kdact",""),"kdcash"=>GetParam("kdcash",""),"kdbank"=>GetParam("kdbank","")),"memorial_id");
			
			$DBConnection->add_data("ais_memorial_z","urut","999");
			$DBConnection->add_data("ais_memorial_z","ktrasl",GetOfficeID());
			$DBConnection->add_data("ais_memorial_z","kdbank",GetParam("kdbank",""));
			$DBConnection->add_data("ais_memorial_z","ledger",GetPeriod(GetParam("tglbkt","")));
			$DBConnection->add_data("ais_memorial_z","curr",GetParam("curr",""));
            $DBConnection->add_data("ais_memorial_z","kdact",GetParam("kdact",""));
			$DBConnection->add_data("ais_memorial_z","rate",$rate);			
			$DBConnection->add_data("ais_memorial_z","nobkt",$TransNo);
			$DBConnection->add_data("ais_memorial_z","tglbkt",$tglbkt);
			$DBConnection->add_data("ais_memorial_z","dk",GetParam("dk999",""));
			$DBConnection->add_data("ais_memorial_z","noorder",GetParam("noorder999",""));
			$DBConnection->add_data("ais_memorial_z","debtur",GetParam("debtur",""));
			$DBConnection->add_data("ais_memorial_z","debnam",GetParam("debnam",""));
			$DBConnection->add_data("ais_memorial_z","skada",GetParam("skada999",""));
			$DBConnection->add_data("ais_memorial_z","princ",GetParam("princ999",""));
			$DBConnection->add_data("ais_memorial_z","vessel",GetParam("vessel999",""));
			$DBConnection->add_data("ais_memorial_z","voyage",GetParam("voyage999",""));
			$DBConnection->add_data("ais_memorial_z","port",GetParam("port999",""));
			$DBConnection->add_data("ais_memorial_z","uraian",GetParam("uraian999",""));
			$DBConnection->add_data("ais_memorial_z","jumlah",StrToNumber(GetParam("total_trans","")));
			$DBConnection->add_data("ais_memorial_z","rupiah",StrToNumber(GetParam("total_trans","")) * $rate);
			$DBConnection->add_data("ais_memorial_z","noref",GetParam("noref1",""));
			$DBConnection->InsertGrid();
			UpdateHistory(GetParam("noref1",""), $TransNo,GetParam("total_trans",""));
			SetLogActivity($TransNo,"Create","");
	    } else {
			$TransNo = GetParam("nobkt","");

			FormSave("ais_memorial_z", "jumlah", $FormFields, array("ledger"=>GetPeriod(GetParam("tglbkt","")),"curr"=>GetParam("curr",""),"debtur"=>GetParam("debtur",""),"debnam"=>GetParam("debnam",""),"rate"=>$rate,"tglbkt"=>$tglbkt,"nobkt"=>$TransNo,"ktrasl"=>GetOfficeID(),"kdact"=>GetParam("kdact",""),"kdcash"=>GetParam("kdcash",""),"kdbank"=>GetParam("kdbank","")),"memorial_id");
			
			$DBConnection->dbc->query("DELETE FROM ais_memorial_z WHERE nobkt='".$TransNo."' AND ktrasl='".GetOfficeID()."' AND urut=999");
			
			$DBConnection->add_data("ais_memorial_z","urut","999");
			$DBConnection->add_data("ais_memorial_z","ktrasl",GetOfficeID());
			$DBConnection->add_data("ais_memorial_z","kdbank",GetParam("kdbank",""));
			$DBConnection->add_data("ais_memorial_z","ledger",GetPeriod(GetParam("tglbkt","")));
			$DBConnection->add_data("ais_memorial_z","curr",GetParam("curr",""));
                        $DBConnection->add_data("ais_memorial_z","kdact",GetParam("kdact",""));
			$DBConnection->add_data("ais_memorial_z","rate",$rate);			
			$DBConnection->add_data("ais_memorial_z","nobkt",$TransNo);
			$DBConnection->add_data("ais_memorial_z","tglbkt",$tglbkt);
			$DBConnection->add_data("ais_memorial_z","dk",GetParam("dk999",""));
			$DBConnection->add_data("ais_memorial_z","noorder",GetParam("noorder999",""));
			$DBConnection->add_data("ais_memorial_z","debtur",GetParam("debtur",""));
			$DBConnection->add_data("ais_memorial_z","debnam",GetParam("debnam",""));
			$DBConnection->add_data("ais_memorial_z","skada",GetParam("skada999",""));
			$DBConnection->add_data("ais_memorial_z","princ",GetParam("princ999",""));
			$DBConnection->add_data("ais_memorial_z","vessel",GetParam("vessel999",""));
			$DBConnection->add_data("ais_memorial_z","voyage",GetParam("voyage999",""));
			$DBConnection->add_data("ais_memorial_z","port",GetParam("port999",""));
			$DBConnection->add_data("ais_memorial_z","uraian",GetParam("uraian999",""));
			$DBConnection->add_data("ais_memorial_z","jumlah",StrToNumber(GetParam("total_trans","")));
			$DBConnection->add_data("ais_memorial_z","rupiah",StrToNumber(GetParam("total_trans","")) * $rate);
			$DBConnection->add_data("ais_memorial_z","noref",StrToNumber(GetParam("noref1","")));			
			$DBConnection->InsertGrid();		
				
		    //UpdateHistory(GetParam("noref1",""), $TransNo,GetParam("total_trans",""));
		}
		
		//DeleteRecord ("txtCheck",$MaxGrid);
		header("Location: $FileName?PageMode=Form&".PRIMARY_KEY."=".$TransNo);
		exit;
		
	}
	if (GetParam("FormAction","")=="Delete") {
//		print "Deleted"."<br>\n";
		DeleteRecord ("txtCheck",$MaxGrid);
	}
}

//Field Verification 
$Verification  = "False";
$SessionVar    = md5(microtime());
//$SessionVar    = "Stuck";
$VerifyFields = array("nobkt"=>"ID No.","tglbkt"=>"Transaction Date","curr"=>"Currency","uraian1"=>"Uraian On Line 1","uraian999"=>"Uraian On Line 999","kdact"=>"Activity Code");
VerifyHTML ($HTMLFormName,$VerifyFields,$SessionVar,"");

if (GetParam(PRIMARY_KEY,"")) {
	$SQLCount     = "SELECT count(*) FROM `$TableName`";
	$SQLCount    .= "WHERE ".PRIMARY_KEY."='".$PRIMARY_VALUE."' AND urut<>999";
	$Count        = $DBConnection->dbc->get_var($SQLCount);	
} else $Count=0;

$NewDataStart = $Count + 1;
$InitFunction = "Masking();Masking2();";

$VerifyGrids = array("uraian"=>"0","jumlah"=>"number","skada"=>"0");
$Masking1 = BuildMasking ($HTMLFormName,MutatorFields($FormFields,($MaxGrid+$Count)));
$Masking2 = BuildMasking ($HTMLFormName,array("tglbkt"=>"date","rate"=>"number"),"2");
$JSMasks  = $Masking1.$Masking2;

Init($SessionVar,$JSMasks);
FormGridHTML ($HTMLFormName,$VerifyGrids,$Count,$MaxGrid,$SessionVar);



//************ SET FORM MODE ***************
if (GetParam(PRIMARY_KEY,"")) $FormMode = "Edit";
else $FormMode = "Add";

//******* DATABASE GRID QUERY ***********

$SQL = "SELECT ".BuildFields($FormFields)." FROM `$TableName`";
if (GetParam(PRIMARY_KEY,"") && $FormMode="Edit") {
    $SQL      = $SQL."WHERE ".PRIMARY_KEY." ='".GetParam(PRIMARY_KEY,"")."'";
    $SQL     .= " AND ktrasl='".GetOfficeID()."'";
    $SQLGrid  = $SQL." ORDER BY ".PRIMARY_KEY;
}





//******* SHOW FORM CONTENT *********
$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate($MOD_TEMPLATE_DIR."/".$FileTemplate);

//********************************* HTML Header ******************************************
//Select Currency Table
$SQLCurr = "SELECT * FROM tblcurrency";
//Select Department:
$SQLDept = "SELECT * FROM tbldept";
//Select Bank:
$SQLBank = "SELECT * FROM tblbank ORDER BY banknam";
//Select Act:
$SQLAct = "SELECT * FROM tblactivity ORDER BY actname";


$HeaderFields = array("nobkt"=>"0","tglbkt"=>"date","curr"=>"","rate"=>"number","debtur"=>"","debnam"=>"","kdbank"=>"","kdact"=>"");
//Leave Here Untouch
$FormHName     = BuildHTMLField($HeaderFields,"name",1);
$FormHValue    = BuildHTMLField($HeaderFields,"value",1);
$SQLHeader     = "SELECT ".BuildFields($HeaderFields)." FROM $TableName ";

if (GetParam(PRIMARY_KEY,"") && $FormMode="Edit") $SQLHeader .= "WHERE ".PRIMARY_KEY."='".GetParam(PRIMARY_KEY,"")."' AND ktrasl='".GetOfficeID()."'";
$TBS->MergeBlock("currformblk",$DBMysql,$SQLCurr);

//Total 999 Values
/*
$Fields9       = array("noref999"=>"0","jumlah999"=>"number","skada999"=>"0","untush999"=>"0");
$Form9Value    = BuildHTMLField($Fields9,"value",1);
*/
if (GetParam("noref",""))
$SQL999 = "SELECT * FROM ais_memorial "."WHERE ".PRIMARY_KEY." ='".GetParam("noref","")."' AND ktrasl='".GetOfficeID()."' ";
else
$SQL999 = "SELECT * FROM ais_memorial "."WHERE ".PRIMARY_KEY." ='".GetParam(PRIMARY_KEY,"")."' AND ktrasl='".GetOfficeID()."' ";
$SQL999 = $SQL999." AND urut = 999";


$TBS->MergeBlock("dept999blk",$DBMysql,$SQLDept);
if (GetParam(PRIMARY_KEY,"") || GetParam("noref","")) {$TBS->MergeBlock("blg9",$DBMysql,$SQL999);}
else {
  $TBS->MergeBlock("blg9",$FormCValue);
}

// HTML Value
$TBS->MergeBlock("headbln",$FormHName);
if (GetParam(PRIMARY_KEY,"")) {$TBS->MergeBlock("headblv",$DBMysql,$SQLHeader);}
else $TBS->MergeBlock("headblv",$FormHValue);



//********************************* HTML GRID *********************************************
//HTML Grid
if (GetParam("noref",""))
$SQLGrid = "

  SELECT ais_memorial.*,'LEBIH DEPOSIT' as uraian
  FROM ais_memorial 
  LEFT JOIN tblreceipt ON ais_memorial.skada=tblreceipt.skada AND tblreceipt.kdtype=1
  LEFT JOIN ais_memorial bk_bb ON  bk_bb.nobkt=ais_memorial.noref  AND ais_memorial.skada=bk_bb.skada
  WHERE ais_memorial.".PRIMARY_KEY." ='".GetParam("noref","")."' AND ais_memorial.ktrasl='".GetOfficeID()."' AND ais_memorial.urut<>999

";

else
$SQLGrid = "SELECT * FROM ais_memorial "."WHERE ".PRIMARY_KEY." ='".GetParam(PRIMARY_KEY,"")."' AND ktrasl='".GetOfficeID()."' AND urut<>999";
//print $SQLGrid;
$Result  = $DBConnection->dbc->get_results($SQLGrid,ARRAY_A);
if ($Result) $Result  = BuildEmptyGrid ($FormFields, $MaxGrid, $Result);

if (GetParam("noref","")) {
  $Result[0]["uraian"] = "PENGEMBALIAN DEPOSIT";
  $Result[0]["jumlah"] = GetParam("remain","");
  $Result[0]["dk"] = "D";
}


//$Result  = BuildEmptyGrid ($FormFields, $MaxGrid, $Result);

$TBS->MergeBlock("bankformblk",$DBMysql,$SQLBank);
$TBS->MergeBlock("actblk",$DBMysql,$SQLAct);
$TBS->MergeBlock("blg",$Result);
$TBS->Show();


//*************** ACTION FUNCTION *******************
function FormInsert() {
	global $DBConnection,$FileName;
	$DBConnection->Insert();
	header("Location: $FileName?PageMode=Form");
	exit;
}

function FormUpdate() {
	global $DBConnection;
	$DBConnection->Update();
}

function FormDelete() {
	global $DBConnection,$FileName,$TableName;
	$DBConnection->deleteGrid("$TableName","nobkt");
	header("Location: $FileName");
	exit;	
}

function FormSearch () {

}

function FormCancel () {
	global $FileName;
	header("Location: ".$FileName);
	exit;
}

function FormSave ($table, $keyField, $FormFields, $SpecialCase="", $PrimaryKey) {
	global $FileName, $MaxGrid, $DBConnection;
	$TotalData = $MaxGrid * 2;	
	$NewDataStart = GetParam("NewData","0");
	for ($a=1;$a<=$TotalData;$a++) {
		foreach ($FormFields as $key=>$formatting) {
			if (!GetParam($keyField.$a,"")) {
				$EndOfData = 1;
				break;
			}
			$value = GetParam($key.$a,"");
			if ($formatting=="number") $value = str_replace(",","",$value);
			if ($formatting=="date") {
				list($day,$month,$year) = explode("/",$value);
				$value = "$year-$month-$day";
		    }
			$DBConnection->add_data($table,$key,$value);
		}
		$rate = StrToNumber(GetParam("rate",""));
		$jmh  = StrToNumber(GetParam("jumlah".$a,""));
		$rupiah = $rate * $jmh;
		$DBConnection->add_data($table,"rupiah",$rupiah);
		if ($EndOfData) {
			break;
	    }
		if (strlen($SpecialCase)) {
			foreach ($SpecialCase as $key => $value) {
			//	print "add_data($table,$key,$value);<br>";
				$DBConnection->add_data($table,$key,$value);
			}
		}
//		print "$a < $NewDataStart<br>";
		if ($a < $NewDataStart) {
			 if (strlen($PrimaryKey)) {
			    $DBConnection->UpdateGrid($PrimaryKey,GetParam($PrimaryKey.$a,""));
		 	 } else {
			    $DBConnection->UpdateGrid($keyField,GetParam($keyField.$a,""));
		     }
		} else {
			$DBConnection->InsertGrid();
	    }
	}
	$DBConnection->clearData();
}
//*************** USER FUNCTION *******************
function buildsqlfield ($table, $arrayfield) {
		global $DBConnection;
		for ($x=0;$x<count($arrayfield);$x++) {
			$DBConnection->add_htmlfield($table,$arrayfield[$x],GetParam($arrayfield[$x],""));
		}
}

function DeleteRecord ($sequence_name,$PageSize) {
	global $DBConnection,$FileName,$TableName;	
	for ($x=1;$x<=$PageSize;$x++) {				
		if (GetParam($sequence_name.$x,""))	{
			$DBConnection->deleteGrid("$TableName","receipt_id",$sequence_name.$x);
	    }
	}
}

function BuildFields ($FormFields) {
		global $DBConnection;
		$str = "";
		foreach ($FormFields as $key=>$formatting) {
			if (strlen($str)) $str .= ",$key";
			else $str = "$key";
		}
		return $str;
}

function MutatorFields ($FormFields, $MaxGrid) {
		global $DBConnection;
		$array_fields = array();
		for ($x=0;$x<$MaxGrid;$x++) {
			foreach ($FormFields as $key=>$formatting){
				$a=$x+1;
				$array_fields[$key.$a] = "$formatting";
			}			
		}
		return $array_fields;
}

function UpdateHistory($refno, $nobkt,$value) {
	global $DBConnection;
	$SQL = "SELECT COUNT(*) FROM ais_history_trans WHERE entry3 = '".$refno."'";
	$isExist = $DBConnection->dbc->get_var($SQL);
	if ($isExist) {
		$DBConnection->dbc->query("UPDATE ais_history_trans SET amount4 = '".StrToNumber($value)."', entry4='$nobkt' WHERE entry3='$refno' AND ktrasl='".GetOfficeID()."'" );
	}
}

?>